Skip to main content

Gorm - Get All Data

Melanjutkan dari tulisan sebelumnya yaitu koneksi database postgresql, pada tulisan kali ini, akan dijelaskan bagaimana cara untuk mengambil semua data dari table tertentu.

Persiapan

  1. Table dengan beberapa data, disini menggunakan articles dengan data sebagai berikut ini :

picture 1

Deklarasi Model

Buat file dengan struktur seperti ini models/article.go, untuk mendeklarisikan struktur dari data articles yang ingin didapatkan :

package models

type Article struct {
ID string `gorm:"primaryKey"`
Name string
Content string
AuthorName string
}

Buat Repository

Buat file dengan struktur seperti ini repository/articles.go, yang berisi fungsi untuk mengelola data articles :

package repository

import (
"example/hello/databases"
"example/hello/models"
)

func GetAllArticles() ([]models.Article, error) {
db, err := databases.SetConnection()

if err != nil {
return nil, err
}

var articles []models.Article

if err := db.Find(&articles).Error; err != nil {
return nil, err
}

return articles, nil
}

Finalisasi

Setelah 2 hal di atas selesai, selanjutnya buat logic untuk menampilkan seluruh data articles pada log aplikasi, dengan memanfaatkan repository tadi, seperti berikut ini :

import (
...

"example/hello/repository"
"fmt"

...
)

func main() {

...

//show all articles
articles, err := repository.GetAllArticles()
if err != nil {
fmt.Println("Failed get articles: ", err)
return
}

fmt.Println("Articles in db are : ")
for _, article := range articles {
fmt.Printf(
"ID: %s, name: %s, content: %s, authorName: %s \n",
article.ID,
article.Name,
article.Content,
article.AuthorName,
)
}

...
}

Jika berhasil, pada log terminal anda, terdapat deretan data articles, seperti berikut ini :

picture 2

Referensi :

Gorm - Declaring Model

Gorm - Query